OpenRoads Designer CONNECT Edition SDK Help

Export terrain in all formats available such as dtm, tin, xml, fil

The below code shows exporting the terrain into the file with the formats like *.dtm, *.tin, *.xml etc.

//Required References
using System;
using System.Collections.Generic;
using System.Linq;
using System.Diagnostics;
using Bentley.CifNET.GeometryModel.SDK;
using Bentley.CifNET.SDK;
using Bentley.GeometryNET;
using Bentley.MstnPlatformNET;
using Bentley.CifNET.TerrainModel.ImportExport;

public void ExportTerrain()
        {
            try
            {
                string exportFileName = "D:\\Output\\TerrainExported";

                //Get active dgn model
                Bentley.DgnPlatformNET.DgnModel dgnModel = Session.Instance.GetActiveDgnModel();
                //Create connection to dgnModel
                Bentley.CifNET.SDK.ConsensusConnection consensusConnection = new ConsensusConnection(dgnModel);
                //Get active geometric model
                Bentley.CifNET.GeometryModel.SDK.GeometricModel geometricModel = consensusConnection.GetActiveGeometricModel();
                if (geometricModel.ActiveSurface == null) return;
                List<DPoint3d> pointList = new List<DPoint3d>();
                //Get active terrain
                Bentley.CifNET.GeometryModel.SDK.TerrainSurface terrainSurface = geometricModel.ActiveSurface as TerrainSurface;
                if (terrainSurface == null) return;

                //Get terrain import export manager
                Bentley.CifNET.TerrainModel.ImportExport.DTMImportExportManager dTMImportExportManager = DTMImportExportManager.Instance;
                if (dTMImportExportManager == null) return;

                //Get list of terrain providers
                Dictionary<string, DTMImportExportProvider> keyValuePairs = dTMImportExportManager.GetProviders();

                //Export terrain with available providers for export
                Bentley.TerrainModelNET.Formats.FileUnit unit = Bentley.TerrainModelNET.Formats.FileUnit.Foot;
                foreach (System.Collections.Generic.KeyValuePair<string, DTMImportExportProvider> providers in DTMImportExportManager.Instance.GetProviders())
                {
                    string key = providers.Key;
                    DTMImportExportProvider provider = providers.Value;
                    bool canExport = provider.CanExport;
                    if (canExport)
                    {
                        string fileNameWithExt = exportFileName + provider.FileFilter.Split('*').Last();
                        provider.ExportDTM(terrainSurface.DTM, fileNameWithExt, terrainSurface.Name, false, unit);
                    }
                }
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
            }
        }